package DAO;

//import models.Administrador;
import java.util.Collection;
import javax.persistence.*;


public class AdministradorDao {

    private EntityManager em;

//    public Administrador crearAdministrador(String nombreAdm, String apellidoAdm, String nombreUsuario) {
//        Administrador a = new Administrador(nombreAdm, apellidoAdm, nombreUsuario);
//        EntityManagerFactory emf =
//                Persistence.createEntityManagerFactory("sischoolPU");
//        this.em = emf.createEntityManager();
//        em.getTransaction().begin();
//        a.setId(1);
//        em.persist(a);
//        em.getTransaction().commit();
//        em.close();
//        emf.close();
//        return a;
//    }

//    public Administrador encontrarAdministrador(String nombreUsuario) {
//        EntityManagerFactory emf =
//                Persistence.createEntityManagerFactory("sischoolPU");
//        this.em = emf.createEntityManager();
//        Query q = em.createQuery("SELECT u FROM Administrador u WHERE u.nombreUsuario='" + nombreUsuario + "'");// con esta funcion se buscas un dato por primary key, el primer parametro es nuestra clase entidad
//        Administrador a = (Administrador) q.getSingleResult();
//        em.close();
//        emf.close();
//        return a;
//    }

//    public void borrarAdministrador(String nombreUsuario) {
//        EntityManagerFactory emf =
//                Persistence.createEntityManagerFactory("sischoolPU");
//        this.em = emf.createEntityManager();
//        em.getTransaction().begin();
////        Administrador u = em.find(Administrador.class, nombreUsuario);//en este caso podemos borrar un Administrador por nombre
//        if (u != null) {//si no lo encuentra por supuesto no lo intenta borrar
//            em.remove(u);// borra de la tabla ese registro
//        }
//        em.getTransaction().commit();
//        em.close();
//        emf.close();
//    }

//    public Administrador actualizarAdministrador(String nombreAdministrador, String claveNueva) {
//        EntityManagerFactory emf =
//                Persistence.createEntityManagerFactory("sischoolPU");
//        this.em = emf.createEntityManager();
//        em.getTransaction().begin();
//        Administrador u = em.find(Administrador.class, nombreAdministrador); //se usa el entity manager para encontrarlo luego cuando se llame ActualizarAdministrador se hace commit y va a persistir el Administrador actualizado
//        if (u != null) {
//            //la funcionalidad de actualizar sirve para cambiar la clave por el momento
//        }
//        em.getTransaction().commit();
//        em.close();
//        emf.close();
//        return u;
//    }

//    public Collection<Administrador> encontrarAdministradores() { //encontrar todos los usuarios
//        EntityManagerFactory emf =
//                Persistence.createEntityManagerFactory("sischoolPU");
//        this.em = emf.createEntityManager();
//        Query query = em.createQuery("SELECT u FROM Administrador u");// Ojo la sentencia estÃ¡ en Java Query Language, no SQL
//
//        Collection<Administrador> a = query.getResultList(); // me guarda la lista de todos los usuarios en mi coleccion
//        em.close();
//        emf.close();
//        return a;
//    }

//    public Collection<Administrador> encontrarAdministradoresSinUsuario() {
//        EntityManagerFactory emf =
//                Persistence.createEntityManagerFactory("sischoolPU");
//        this.em = emf.createEntityManager();
//        Query query = em.createQuery("SELECT a FROM Administrador a WHERE a.nombreUsuario IS NULL");
//        Collection<Administrador> a = query.getResultList();
//        em.close();
//        emf.close();
//        return a;
//    }
}
